#include <iostream>
#include <pthread.h>  // 注意是第三方库
#include <unistd.h>

using namespace std;

void* threadRun(void* argc)
{
    while (1)
    {
        cout << "线程" << (char*)argc << "执行任务,当前进程pid为" << getpid() << endl;
        sleep(1); 
    }
    return nullptr;
}

int main()
{
    // 主线程
    pthread_t tid[3];  // 创建三个线程id变量
    char name[48] = {0};  // 传名字的缓冲区
    for (int i = 0; i < 3; ++i)
    {
        snprintf(name, sizeof name, "%s - id:%d", "thread", i + 1);
        pthread_create(tid + i, nullptr, threadRun, (void*)name);  // id地址 属性 回调函数void* (void*) 传入回调函数的参数
        sleep(1);  // 缓解传参产生的bug
    }
    while (true)
    {
        cout << "main线程执行任务-pid为" << getpid() << endl;
        sleep(3); 
    }
    return 0;
}